package main

import "fmt"

// 定义:  map[keyType]valueType
// 默认初始化为nil, 需要使用make()函数来分配内存, make(map[keyType]valueType, [cap])
func main() {
	// 基本使用示例
	scoreMap := make(map[string]int, 8)
	scoreMap["张三"] = 90
	scoreMap["小明"] = 100
	fmt.Println(scoreMap)
	fmt.Println(scoreMap["小明"])
	fmt.Printf("%T\n", scoreMap)

	// 声明时填充元素
	userInfo := map[string]string{
		"username": "zhangsan",
		"password": "123456",
	}
	fmt.Println(userInfo)

	// 判断某个key是否存在
	v, ok := scoreMap["张三"]
	if ok {
		fmt.Println(v)
	} else {
		fmt.Println("查无此人")
	}

	// 遍历: 遍历map时的元素顺序与添加键值对的顺序无关
	for key := range scoreMap {
		fmt.Println(key, scoreMap[key])
	}

	// 删除 delete(map, key)
	delete(scoreMap, "小明")
	fmt.Println(scoreMap)
}
